/**
 * 
 */

package com.shy.portal.dao;

import java.util.List;

import com.shy.base.dao.BaseDao;
import com.shy.base.vo.EntityTypeValue;
import com.shy.base.vo.PagerFilter;
import com.shy.portal.entity.Menu;

/**
 * <p>
 * Title: MenuDao
 * </p>
 * <p>
 * Description:菜单管理dao层接口设置計
 * </p>
 * <p>
 * Company:ipebg
 * </p>
 * 
 * @author H2013788
 */
public interface MenuDao extends BaseDao<Menu> {

    /**
     * 分頁查询角色信息
     * 
     * @param whereHql
     *            條件語句
     * @param params
     *            参数列表，與條件語句對應
     * @param pagerFilter 页面文件
     * @return 页面文件
     * @author H2013788
     * @date 2017/10/6上午9:03:53
     */
    PagerFilter listMenuByPager(String whereHql, List<EntityTypeValue> params,
            PagerFilter pagerFilter);

    /**
     * 查询当前数据庫中菜单级別最大值
     * 
     * @return 最高级
     * @author H2013788
     * @date 2017/10/11上午10:17:26
     */
    int getMaxLevel();

    /**
     * 查询同级菜单最大排序值
     * @param pid 最大排序
     * @return 最大排序
     * @author H2201965
     * @date 2018/2/6下午3:10:40
     */
    int getMaxSortByParent(Integer pid);
    
    
    /**
     * 查询所有菜单列表并按照菜单编码排序
     * @return
     * @author H2013788
     * @date 2018/9/8
     */
    List<Menu> findAllListOrderByCode();
    
    
    /**
     * 查询角色具有的菜单列表
     * @param roleId
     * @return
     * @author H2013788
     * @date 2018/10/26
     */
    List<Menu> getMenusByRoleId(Integer roleId);
}
